In computer-aided graphics, objects are often displayed as three-dimensional solids. In graphics systems suitable for high-end graphics applications, these solids may be smooth-shaded so that they appear more realistic and life-like. In other words, through the use of smooth shading, the intensity or color of the object can be varied over the object surface to enhance the three-dimensional appearance of the object. For example, the color or intensity values of the object may increase progressively proceeding from the left edge to the right edge of the object for shading purposes. A similar intensity variation may be present from the top to the bottom of the object.
In computer-aided graphics, a smooth-shaded object is composed of a multiplicity of smooth-shaded drawing primitives whose shapes are such that they can be arranged adjacent to one another to form the object. A commonly used drawing primitive is the trapezoid. Also used are the triangle and polygon, the former being a degenerate trapezoid whose top or bottom span is a single point and the latter being composed of a plurality of adjacent trapezoids. While the object being displayed may appear to be composed of curved surfaces, it is actually made up of a mosaic of facets consisting of drawing primitives, e.g. trapezoids. On surface areas of the object which are relatively flat, these trapezoids are relatively large. On the other hand, where the curvature of the object surface is more pronounced, the trapezoids forming those surfaces are correspondingly smaller. Often, thousands of smooth-shaded primitives have to be displayed in order to give the object a realistic three dimensional or solid appearance.
In a typical raster display, a trapezoid primitive is composed of horizontal scans of picture elements or pixels with the top span defining the top of the trapezoid, the bottom span defining the bottom of the trapezoid and with the beginnings and ends of those spans defining the non-parallel side edges of the trapezoid. The shading of each trapezoid being displayed is determined by the intensities of the pixels in the trapezoids. To provide smooth shading in a graphics system, the system CPU has to communicate with the graphics hardware in order to transfer the requisite information to the graphics hardware for rendering each drawing primitive.
In prior graphics work stations and systems of this general type, the communication between the system CPU and the graphics hardware occurs at a relatively low level. In early systems, the system's CPU had to transfer to the graphics hardware intensity information for each individual pixel of each smooth-shaded trapezoid or other primitive making up the object being displayed. Since this involves a transfer of a very large amount of information from the CPU to the graphics hardware, it took a relatively long time to display a smooth-shaded object. In later systems, the graphics hardware has been able to display an entire span of pixels from information provided by the CPU. In other words, for each span of the trapezoid, the display hardware is given a command to draw a span of pixels having a given length and starting with a given pixel intensity. Thus, for each span, the intensity of the first pixel in the span has to be calculated and transferred to the graphics hardware. Although such systems were an improvement over the earlier apparatus, they are still not fast enough for use in present day CAD CAM, CAE and other color graphics processing systems that are expected to produce high quality displays of solid objects in a minimum amount of time.